// jest匹配的配置

module.exports = {
  // 告诉Jest扫描哪些类型的文件
  moduleFileExtensions: ['js', 'jsx', 'json', 'vue', 'ts'],
  // 设定各个类型的文件对应哪些预处理工具
  transform: {
    '^.+\\.ts$': 'ts-jest',
    '^.+\\.jsx?$': 'babel-jest',
    '^.+\\.vue$': 'vue-jest',
    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub'
    // 用 `babel-jest` 处理 js
    // '^.+\\.js$': '<rootDir>/node_modules/babel-jest',
    // 配置vue-jest预处理器
    // '.*\\.(vue)$': '<rootDir>/node_modules/jest-vue-preprocessor'
  },
  // 处理webpack别名
  moduleNameMapper: {
    // 支持源代码中相同的 `@` -> `src` 别名
    '^@/(.*)$': '<rootDir>/src/$1'
  },
  // ut运行忽略的文件夹
  testPathIgnorePatterns: [
    '<rootDir>/test/e2e'
  ],
  transformIgnorePatterns: ['<rootDir>/node_modules/(?!(ant-design-vue|@supermap/vue-iclient-mapboxgl|ol|@supermap/iclient-ol|@supermap/iclient-common|ol-mapbox-style|@mapbox/mapbox-gl-style-spec)/)'],
  // 快照的序列化工具
  snapshotSerializers: ['jest-serializer-vue'],
  setupFiles: ['jest-canvas-mock', './tests/unit/mocks/mock.init.js'],
  testMatch: [
    '<rootDir>/tests/unit/**/*.spec.(js|jsx|ts|tsx)|<rootDir>/__tests__/*.(js|jsx|ts|tsx)'
  ],
  testURL: 'http://localhost/',
  // 测试覆盖率
  coverageDirectory: '<rootDir>/tests/unit/coverage',
  collectCoverageFrom: [
    '!**/node_modules/**',
    'src/**/*.{js,vue}',
    '!src/main.js',
    '!src/registerServiceWorker.js',
    '!src/router.js',
    '!src/store.js',
    '!src/store/index.js',
    '!src/store/**.js',
    '!src/store/**/state.js'
  ],
  globals: {
    'ts-jest': {
      tsConfig: '<rootDir>/tsconfig.json',
      babelConfig: true
    }
  },
  reporters: ["default", "jest-teamcity"]
};
